home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls085.solintel.Z / tls085.solintel / lib / vtcl / examples / purge.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  7.7 KB  |  351 lines

  1. #!/bin/vtcl
  2. # @(#) purge.tcl 11.3 94/10/03 
  3. # Zibis directory cleanup script 
  4. #
  5.  
  6. proc exitCB { cbs } {
  7.     VtClose
  8.     exit 0
  9. }
  10.  
  11. proc previousCB { cbs } {
  12.  
  13.         global tlabel files list text filename removeB
  14.  
  15.         set pos [VtListGetSelectedItem $list]
  16.  
  17.         if { $pos != ""} {
  18.                 set pos [expr $pos-1]
  19.  
  20.         } else {
  21.                 set pos 1
  22.  
  23.         }
  24.  
  25.         VtListSelectItem  $list -position $pos
  26.  
  27.         set dlog [keylget cbs dialog]
  28.  
  29.         set newFilename [ VtListGetSelectedItem $list -byItemList ]
  30.  
  31.  
  32.         if {$newFilename == ""} {
  33.                 set filename $newFilename
  34.                 VtSetValues $tlabel -label "Source"
  35.                 VtSetValues $text -value {}
  36.                 VtSetSensitive $removeB 0
  37.                 return
  38.         }
  39.  
  40.         if {[file isdirectory $newFilename] == 1} {
  41.                 VtSetValues $tlabel -label "Directory"
  42.                 VtSetValues $text -value {}
  43.                 VtSetSensitive $removeB 0
  44.                 return
  45.         }
  46.  
  47.         if {[catch {open $newFilename "r"} fp] != 0} {
  48.                 VtShow\
  49.                         [VtErrorDialog [keylget cbs "widget"].errorBox\
  50.                                                 -ok -title "Can't open file"\
  51.                                                 -message "Can't open \"$newFilename\", error was:\n$fp"]
  52.                 VtListSelectItem $list -item $filename
  53.                 return
  54.         }
  55.  
  56.         set filename $newFilename
  57.         VtSetValues $tlabel -label "Source : $filename"
  58.  
  59.         set textList [read $fp]
  60.         close $fp
  61.  
  62.         VtSetValues $text -value $textList
  63.  
  64.         VtSetSensitive $removeB 1
  65.  
  66. }
  67.  
  68.  
  69. proc nextCB { cbs } {
  70.  
  71.     global tlabel files list text filename removeB
  72.  
  73.         set pos [VtListGetSelectedItem $list]
  74.  
  75.     if { $pos != "" && $pos != [expr [llength $files]] } { 
  76.         set pos [expr $pos+1]  
  77.  
  78.     } else { 
  79.         set pos 1 
  80.  
  81.     }
  82.  
  83.     VtListSelectItem  $list -position $pos
  84.  
  85.         set dlog [keylget cbs dialog]
  86.  
  87.         set newFilename [ VtListGetSelectedItem $list -byItemList ]
  88.  
  89.  
  90.         if {$newFilename == ""} {
  91.                 set filename $newFilename
  92.                 VtSetValues $tlabel -label "Source :"
  93.                 VtSetValues $text -value {}
  94.                 VtSetSensitive $removeB 0
  95.                 return
  96.         }
  97.  
  98.         if {[file isdirectory $newFilename] == 1} {
  99.                 VtSetValues $tlabel -label "Directory : $newFilename"
  100.                 VtSetValues $text -value {}
  101.                 VtSetSensitive $removeB 0
  102.                 return
  103.         } 
  104.  
  105.  
  106.         if {[catch {open $newFilename "r"} fp] != 0} {
  107.                 VtShow\
  108.                         [VtErrorDialog [keylget cbs "widget"].errorBox\
  109.                                                 -ok -title "Can't open file"\
  110.                                                 -message "Can't open \"$newFilen
  111. ame\", error was:\n$fp"]
  112.                 VtListSelectItem $list -item $filename
  113.                 return
  114.         }
  115.  
  116.         set filename $newFilename
  117.         VtSetValues $tlabel -label "Source : $filename"
  118.  
  119.         set textList [read $fp]
  120.         close $fp
  121.  
  122.         VtSetValues $text -value $textList
  123.  
  124.         VtSetSensitive $removeB 1
  125.  
  126. }
  127.  
  128.  
  129. set filename ""
  130. proc listCB { cbs } {
  131.     global    filename text tlabel removeB list
  132.     
  133.     set dlog [keylget cbs dialog]
  134.     set newFilename [keylget cbs "selectedItemList"]
  135.  
  136.     if {$newFilename == ""} {
  137.         set filename $newFilename
  138.         VtSetValues $tlabel -label "Source :"
  139.         VtSetValues $text -value {}
  140.         VtSetSensitive $removeB 0
  141.         return
  142.     }
  143.  
  144.     if {[file isdirectory $newFilename] == 1} {
  145.         VtSetValues $tlabel -label "Directory : $newFilename"
  146.         VtSetValues $text -value {}
  147.         VtSetSensitive $removeB 0
  148.          return
  149.     } 
  150.  
  151.     if {[catch {open $newFilename "r"} fp] != 0} {
  152.         VtShow\
  153.             [VtErrorDialog [keylget cbs "widget"].errorBox\
  154.                         -ok -title "Can't open file"\
  155.                         -message "Can't open \"$newFilename\", error was:\n$fp"]
  156.         VtListSelectItem $list -item $filename
  157.         return
  158.     }
  159.  
  160.     set filename $newFilename
  161.     VtSetValues $tlabel -label "Source : $filename"
  162.  
  163.     set textList [read $fp]
  164.     close $fp
  165.  
  166.     VtSetValues $text -value $textList
  167.  
  168.     VtSetSensitive $removeB 1
  169. }
  170.  
  171. proc removeCBS { cbs } \
  172. {
  173.     global tog tlabel files list text filename removeB
  174.  
  175.     if {[VtGetValues $tog -value]  == 1} \
  176.      {
  177.        set message [ VtMessageDialog form.message \
  178.         -okCallback "do_removeCBS" \
  179.         -ok \
  180.         -cancel \
  181.         -message "Do you really want to remove $filename?"]
  182.        VtShow $message
  183.  
  184.      } else {
  185.        do_removeCBS $cbs 
  186.     }
  187.  
  188. }
  189.  
  190. proc do_removeCBS { cbs } \
  191. {
  192.     global tlabel files list text filename removeB
  193.  
  194.     set pos [VtListGetSelectedItem $list ]
  195.  
  196.  
  197.  if {[catch {exec /bin/rm $filename} errorMsg] != 0} \
  198.  {
  199.                 VtShow\
  200.                         [VtErrorDialog [keylget cbs "widget"].errorBox\
  201.                                 -ok -title "Can't Remove"\
  202.                                 -message "Can't remove \"$filename\", error was
  203. :\n$errorMsg"]
  204.   } else {
  205.  
  206.     set files [lsort [glob -nocomplain * ]] 
  207.  
  208.         if { [llength $files] == 0 } {
  209.              VtSetValues  $list -itemList $files
  210.              VtSetValues $text -value "" 
  211.              VtSetSensitive $removeB 0
  212.  
  213.       } else {
  214.  
  215.         VtSetValues  $list -itemList $files
  216.  
  217.         if { [expr 1+[llength $files]] == $pos} {
  218.             VtListSelectItem  $list -position [expr $pos-1]
  219.         } else {
  220.                  VtListSelectItem  $list -position $pos 
  221.         }
  222.  
  223.         set dlog [keylget cbs dialog]
  224.  
  225.         set newFilename [ VtListGetSelectedItem $list -byItemList ]
  226.    
  227.  
  228.         if {$newFilename == ""} {
  229.                 set filename $newFilename
  230.                 VtSetValues $tlabel -label "Source"
  231.                 VtSetValues $text -value {}
  232.                 VtSetSensitive $removeB 0
  233.                 return
  234.         }
  235.  
  236.  
  237.         if {[catch {open $newFilename "r"} fp] != 0} {
  238.                 VtShow\
  239.                         [VtErrorDialog [keylget cbs "widget"].errorBox\
  240.                                                 -ok -title "Can't open file"\
  241.                                                 -message "Can't open \"$newFilen
  242. ame\", error was:\n$fp"]
  243.                 VtListSelectItem $list -item $filename
  244.                 return
  245.         }
  246.  
  247.         set filename $newFilename
  248.         VtSetValues $tlabel -label "Source : $filename"
  249.  
  250.         set textList [read $fp]
  251.         close $fp
  252.  
  253.         VtSetValues $text -value $textList
  254.  
  255.         VtSetSensitive $removeB 1
  256.  
  257.       }
  258.  
  259.   }
  260.   
  261. }
  262.  
  263.  
  264. # Mainline code sections....
  265.  
  266. global tlabel
  267.  
  268. set ap [VtOpen "purge"]
  269.  
  270. set form [VtFormDialog $ap.Top\
  271.             -title "Purge"]
  272.  
  273.  
  274. set llabel [VtLabel $form.llabel\
  275.             -topSide FORM\
  276.             -leftSide FORM\
  277.             -label "Files" ]
  278.  
  279.  
  280. set files [lsort [glob -nocomplain * ]]
  281.  
  282. set list [VtList $form.list\
  283.             -selection SINGLE\
  284.             -MOTIF_topOffset 2\
  285.             -rows 10\
  286.             -itemList $files\
  287.             -defaultCallback execCB \
  288.             -callback listCB ]
  289.  
  290.  
  291. set tlabel [VtLabel $form.tlabel\
  292.             -topSide FORM\
  293.             -leftSide $list\
  294.             -rightSide FORM \
  295.             -label "Source" ]
  296.             
  297.  
  298. set text [VtText $form.text\
  299.             -leftSide $list\
  300.             -rightSide FORM\
  301.             -topSide $tlabel\
  302.             -rows 40\
  303.             -columns 80\
  304.             -horizontalScrollBar TRUE\
  305.             -verticalScrollBar TRUE\
  306.             -readOnly ]
  307.  
  308. set rc [VtRowColumn $form.rc\
  309.              -leftSide FORM    \
  310.             -topSide NONE\
  311.             -packing COLUMN\
  312.             -bottomSide FORM\
  313.             -horizontal]
  314.  
  315. VtSetValues $text -bottomSide $rc
  316. VtSetValues $list -bottomSide $rc
  317.  
  318.  
  319. set removeB [VtPushButton $rc.removeB\
  320.              -callback "removeCBS "\
  321.             -labelCenter\
  322.             -label Remove]
  323.  
  324. # make the remove button insensitive
  325. VtSetSensitive $removeB 0
  326.  
  327. set nextB   [VtPushButton $rc.nextB\
  328.              -callback "nextCB"\
  329.             -labelCenter\
  330.             -label Next]
  331.  
  332. set previousB [VtPushButton $rc.previousB\
  333.             -callback "previousCB"\
  334.             -labelCenter\
  335.             -label Previous]
  336.  
  337. set exitB [VtPushButton $rc.exitB\
  338.             -callback "exitCB"\
  339.             -labelCenter\
  340.             -label Exit]
  341.  
  342. set tog [VtToggleButton $rc.tog \
  343.             -set True \
  344.             -value 1 \
  345.                 -label "Confirm"]
  346.  
  347.  
  348. VtShow $form
  349.  
  350. VtMainLoop
  351.